Kubernetes 我聽過很多次,但一直沒有真正花時間系統化地學習。這 30 天對我來說,剛好是一個督促自己學習與輸出的紀錄。
對我來說,最有效的學習方式是 「先搞懂基礎知識,再搭配動手實作」。透過實際操作,能加深記憶外,也能真正搞清楚各個元件在真實情境中是如何運作的。
這 30 天會從 K8s 的核心概念出發,搭配一個貫穿全程的 Todo App,從第一個 Pod YAML 一路到 CI/CD、監控、Log 收集等環節。
希望這個系列能幫助到同樣想入門 K8s 的人,一起完成這 30 天的學習!
這個系列會用同一個專案從頭走到尾:Todo App。
技術架構:
┌─────────────────┐ HTTP ┌─────────────────┐ SQL ┌──────────┐
│ React Frontend │ ──────────▶ │ FastAPI Backend │ ─────────▶ │ MySQL │
│ (nginx serve) │ │ (REST API) │ │ │
└─────────────────┘ └─────────────────┘ └──────────┘
Port 3000 Port 8000 Port 3306
三個服務:
現實中的應用程式幾乎都是這個組合,用它來學 K8s,學到的東西能直接對應到真實的工作場景。
功能:
功能越複雜,操作時越容易卡在「搞懂這個 App」,而不是「搞懂 K8s」。這個 App 的定位是學習的載體,不是主角。
Todo App 已經推上 Github,可以直接使用:
GitHub 連結在這裡:Todo-App
在明天開始之前,請確認以下工具都安裝完畢:
K8s 的 Container Runtime 需要 Docker,minikube 也會用到它。
安裝完成後打開 Docker Desktop,確認左下角顯示綠色的 Running 狀態。
本機跑 K8s Cluster 的工具,不需要真的租雲端伺服器就能學 K8s。
# macOS(Homebrew)
brew install minikube
# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# Windows(PowerShell 管理員模式)
winget install minikube
操作 K8s 的指令工具,所有跟 K8s 溝通的指令都靠它。
# Mac
brew install kubectl
# Windows
winget install -e --id Kubernetes.kubectl
docker --version
minikube version
kubectl version --client
三個都有輸出版本號就代表準備好了。
# 預設會使用 Docker driver
minikube start
第一次啟動會比較久,需要下載 K8s 的元件。看到這個輸出就代表成功了:
🏄 Done! kubectl is now configured to use "minikube" cluster
確認 Cluster 正常運作:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 1m v1.30.0
STATUS 是 Ready 就可以開始了。
環境都準備好之後,明天會從『為什麼需要 K8s』開始,正式踏入這 30 天的旅程,明天見!